﻿--DROP VIEW dbo.BAM_GeneralMessageStatistics
CREATE VIEW dbo.BAM_GeneralMessageStatistics
AS

--Lots of issues surrounding Correlated subqueries which should move to CTEs
SELECT TOP (100) PERCENT
(SELECT TOP (1) 
	CurrentStep
FROM          
	dbo.BAM_MessageLog AS ml WITH (NOLOCK)
WHERE      
	(BTSMessageID = bam.BTSMessageID)
ORDER BY 
	RecordID 
DESC) 
AS 
	CurrentStep

,(SELECT TOP (1) 
	NextStep
FROM          
	dbo.BAM_MessageLog AS ml WITH (NOLOCK)
WHERE      
	(BTSMessageID = bam.BTSMessageID)
ORDER BY 
	RecordID DESC) 
AS 
	NextStep
	
,(SELECT TOP (1) CONVERT(nvarchar(50), DATEADD(hh, - DATEDIFF(hh, GETDATE(), GETUTCDATE()), bam.LastModified), 109) 
AS 
	Expr1
FROM          
	dbo.BAM_MessageLog AS ml WITH (NOLOCK)
WHERE      
	(BTSMessageID = bam.BTSMessageID)
ORDER BY 
	RecordID 
DESC) 
AS 
	LastStatusUpdate,
(SELECT     
	RecordID
FROM          
	dbo.BAM_EDI_Envelope AS be
WHERE      
	(BTSMessageID = bam.BTSMessageID)) 
AS 
	 MessageID
	,ods.DateIDKey
	,bam.RecordID
	,bam.ActivityID
	,bam.MessageType
	,bam.MessageDirection
	,bam.OrchestrationName
	,bam.MessageSource
	,bam.MessageDestination
	,bam.NumberOfChildMessages
	,bam.BTSMessageID
	,bam.BTSInterchangeID
	,CONVERT(nvarchar(50)
	,bam.MessageStartTime, 109) 
AS 
	 MessageStartTime
	,bam.MessageCommunicationMethod
	,bam.MessageTransmissionSuccessful
	,CONVERT(nvarchar(50), bam.MessageEndTime, 109) 
AS 
	MessageEndTime
	, DATEDIFF(ss, bam.MessageStartTime, bam.MessageEndTime) 
AS 
	SecDuration
	,DATEDIFF(ms, bam.MessageStartTime,bam.MessageEndTime) 
AS 
	MSDuration

,'TransactionStatus' = CASE
WHEN 
	MessageType = '270' 
THEN 
	(SELECT TransactionStatus FROM dbo.BAM_270_271 bc WHERE bc.BTSMessageID = bam.BTSMessageID) 
		  
WHEN 
	MessageType = '837I' 
THEN 
	(SELECT TransactionStatus FROM dbo.BAM_837I_835 bc WHERE bc.BTSMessageID = bam.BTSMessageID)
When 
	MessageType = '271' 
THEN 'Response Message'

When 
	MessageType = '835' 
THEN 'Response Message'

ELSE 
	'Incomplete'
END
                      
FROM         
	[$(BAM)].dbo.bam_ClaimMessagingStatistics_Completed AS bam WITH (NOLOCK) 
INNER JOIN
	dbo.ODS_Date AS ods ON dbo.ufn_GetDateOnly(bam.LastModified) = ods.PK_Date


GO
EXEC sp_addextendedproperty N'MS_DiagramPane1', N'[0E232FF0-B466-11cf-A24F-00AA00A3EFFF, 1.00]
Begin DesignProperties = 
   Begin PaneConfigurations = 
      Begin PaneConfiguration = 0
         NumPanes = 4
         Configuration = "(H (1[40] 4[20] 2[20] 3) )"
      End
      Begin PaneConfiguration = 1
         NumPanes = 3
         Configuration = "(H (1 [50] 4 [25] 3))"
      End
      Begin PaneConfiguration = 2
         NumPanes = 3
         Configuration = "(H (1 [50] 2 [25] 3))"
      End
      Begin PaneConfiguration = 3
         NumPanes = 3
         Configuration = "(H (4 [30] 2 [40] 3))"
      End
      Begin PaneConfiguration = 4
         NumPanes = 2
         Configuration = "(H (1 [56] 3))"
      End
      Begin PaneConfiguration = 5
         NumPanes = 2
         Configuration = "(H (2 [66] 3))"
      End
      Begin PaneConfiguration = 6
         NumPanes = 2
         Configuration = "(H (4 [50] 3))"
      End
      Begin PaneConfiguration = 7
         NumPanes = 1
         Configuration = "(V (3))"
      End
      Begin PaneConfiguration = 8
         NumPanes = 3
         Configuration = "(H (1[56] 4[18] 2) )"
      End
      Begin PaneConfiguration = 9
         NumPanes = 2
         Configuration = "(H (1 [75] 4))"
      End
      Begin PaneConfiguration = 10
         NumPanes = 2
         Configuration = "(H (1[66] 2) )"
      End
      Begin PaneConfiguration = 11
         NumPanes = 2
         Configuration = "(H (4 [60] 2))"
      End
      Begin PaneConfiguration = 12
         NumPanes = 1
         Configuration = "(H (1) )"
      End
      Begin PaneConfiguration = 13
         NumPanes = 1
         Configuration = "(V (4))"
      End
      Begin PaneConfiguration = 14
         NumPanes = 1
         Configuration = "(V (2))"
      End
      ActivePaneConfig = 0
   End
   Begin DiagramPane = 
      Begin Origin = 
         Top = 0
         Left = 0
      End
      Begin Tables = 
         Begin Table = "bam"
            Begin Extent = 
               Top = 6
               Left = 38
               Bottom = 260
               Right = 432
            End
            DisplayFlags = 280
            TopColumn = 0
         End
         Begin Table = "ods"
            Begin Extent = 
               Top = 6
               Left = 470
               Bottom = 114
               Right = 692
            End
            DisplayFlags = 280
            TopColumn = 0
         End
      End
   End
   Begin SQLPane = 
   End
   Begin DataPane = 
      Begin ParameterDefaults = ""
      End
      Begin ColumnWidths = 22
         Width = 284
         Width = 3540
         Width = 1935
         Width = 3210
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
         Width = 1500
      End
   End
   Begin CriteriaPane = 
      Begin ColumnWidths = 11
         Column = 13320
         Alias = 1485
         Table = 1170
         Output = 720
         Append = 1400
         NewValue = 1170
         SortType = 1350
         SortOrder = 1410
         GroupBy = 1350
         Filter = 1350
         Or = 1350
         Or = 1350
         Or = 1350
      End
   End
End
', 'SCHEMA', N'dbo', 'VIEW', N'BAM_GeneralMessageStatistics', NULL, NULL
GO
EXEC sp_addextendedproperty N'MS_DiagramPaneCount', 1, 'SCHEMA', N'dbo', 'VIEW', N'BAM_GeneralMessageStatistics', NULL, NULL

